package practice.lambda;

public class Lambda {
    public static void main(String[] args) {
        /**
            lambda表达式的基础语法：
            (参数1,参数2,…) -> {
            方法体
            };
         */
        /**
         * lambda表达式只能用在接口里面只有一个抽象方法的时候 多了就不行
         * 匿名内部类不管接口里面有多少个抽象方法都可以用
         * lambda表达式只能实现接口
         * 匿名内部类不管是普通类、抽象类还是接口都可以用 都是相当于创建一个子类
         * */
        //lambda表达式只能用在接口里面只有一个抽象方法的时候 多了就不行

        //无参无返回值
        /*
        Aoo aoo = () -> {
            System.out.println("这是lambda表达式");
        };
        aoo.test();
         */

        //有参无返回值
        /*
        Aoo aoo = (String name,int age) -> {
            System.out.println();
        };
        aoo.test("chu",66);
         */

        //有参有返回值
        Aoo aoo = (name,age) -> { //参数类型可以省略
          return age;
        };
        aoo.test("chu",66);



        //匿名内部类不管接口里面有多少个抽象方法都可以用
        Aoo aoo1 = new Aoo() {
            @Override
            public int test(String name,int age) {
                System.out.println("这是匿名内部类");
                return age;
            }
        };
        aoo1.test("chu",66);


    }
}
